package com.ssy.lingxi.system.service;

import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.system.model.request.*;
import com.ssy.lingxi.system.model.response.MenuCodeVO;

import java.util.List;

/**
 * 菜单编码相关接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-01-14
 */
public interface MenuCodeService {

    /**
     * 新增菜单编码
     * @param addVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> addMenuCode(MenuCodeAddVO addVO);

    /**
     * 根据Id，修改菜单编码
     * @param updateVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> updateMenuCode(MenuCodeUpdateVO updateVO);

    /**
     * 根据Id,删除菜单编码
     * @param idVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> deleteMenuCodeById(IdVO idVO);

    /**
     * 根据code、source查询一个菜单编码
     * @param getVO 接口参数
     * @return 查询结果
     */
    Wrapper<MenuCodeVO> findMenuCode(MenuCodeGetVO getVO);

    /**
     * 根据source，查询菜单编码列表
     * @param sourceVO 接口参数
     * @return 查询结果
     */
    Wrapper<List<MenuCodeVO>> listMenuCode(MenuCodeSourceVO sourceVO);

    /**
     * 分页查询菜单编码列表
     * @param pageVO 接口参数
     * @return 查询结果
     */
    Wrapper<PageData<MenuCodeVO>> pageMenuCode(MenuCodePageVO pageVO);
}
